package cn.edu.scnu.semart.user.service;

import cn.edu.scnu.semart.model.user.User;
import cn.edu.scnu.semart.vo.user.ChangePwdVo;
import cn.edu.scnu.semart.vo.user.UserProfileUpdateVo;
import cn.edu.scnu.semart.vo.user.UserQueryVo;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

public interface UserService extends IService<User> {
    /**
     * 分页查询用户列表
     * @param pageParam 分页参数
     * @param userQueryVo 查询条件
     * @return 分页结果
     */
    IPage<User> selectPage(Page<User> pageParam, UserQueryVo userQueryVo);

    void resetPassword(Integer userId, String newPassword);

    void changePassword(Integer currentUserId, ChangePwdVo vo);

    void updateStatus(Long id, User.UserStatus banned);

    void batchUpdateStatus(List<Long> ids, User.UserStatus banned);

    void updateProfile(Integer userId, UserProfileUpdateVo vo);
}
